const http = require('http');
const fs = require('fs');

const server = http.createServer();

// 路由表
const routesMap = new Map();
routesMap.set('/', async (req, res) => {
    res.setHeader('Content-Type', 'text/html;charset="utf-8"');
    res.end('首页');
});
routesMap.set('/list', async (req, res) => {
    res.setHeader('Content-Type', 'text/html;charset="utf-8"');
    res.end('列表');
});

server.on('request', async (req, res) => {
    // 1、获取当前客户端请求的url
    let url = req.url;

    if (url.startsWith('/public')) {
        //静态资源
        // 静态文件路由
        let content = fs.readFileSync(`.${url}`).toString();

        // 5、把读取到的资源文件内容作为响应内容返回给客户端
        res.end(content);
    }

    // 处理动态资源
    // 根据当前的 pathname 指定 routeMap 中对应的函数
    let routeHandler = routesMap.get(url);
    if (routeHandler) {
        await routeHandler(req, res);
    } else {
        // url 没有命中任何资源
        // console.log('没有任何资源');
        // res.setHeader('Content-Type', 'text/html;charset="utf-8"');
        // res.statusCode = 404;
        // res.end('错误了');

        res.statusCode = 302;
        res.setHeader('Location', '/');
        res.end();
    }



});

server.listen(8888, '0.0.0.0', () => {
    console.log(`服务启动成功`);
});
